/**
 * 脱敏工具类
 * todo: 后端脱敏需要和前端配合，前端脱敏一般采取新建一个不存在的字段去展示脱敏后的数据
 */

/**
 * 手机号脱敏
 * @param phone
 */
export function phoneDesensitization(phone: string): string {
  if (!phone || phone == '') {
    return ''
  }
  return phone.replace(/^(.{3})(?:\d+)(.{4})$/, '$1****$2')
}

/**
 * 身份证脱敏
 * @param idCard
 */
export function idCardDesensitization(idCard: string): string {
  if (!idCard || idCard == '') {
    return ''
  }
  return idCard.replace(/^(.{8})(?:\d+)(.{4})$/, '$1******$2')
}

/**
 * 姓名脱敏
 * @param name 源名称
 * @param onlyFirst 是否只对姓脱敏
 */
export function nameDesensitization(name: string, onlyFirst = true): string {
  if (!name || name == '') {
    return ''
  }
  if (onlyFirst) {
    return '*' + name.substring(1, name.length)
  }
  if (name.length == 2) {
    return name.substring(0, 1) + '*' //截取name 字符串截取第一个字符，
  } else if (name.length == 3) {
    return name.substring(0, 1) + '*' + name.substring(2, 3) //截取第一个和第三个字符
  } else if (name.length > 3) {
    return name.substring(0, 1) + '*' + '*' + name.substring(3, name.length) //截取第一个和大于第4个字符
  } else {
    return ''
  }
}
